import * as fs from 'fs';
import * as path from 'path';
import * as XLSX from 'xlsx';
import * as os from 'os';

// 获取桌面路径
const getDesktopPath = (): string => {
    const userHome = os.homedir();
    return path.join(userHome, 'Desktop');
};

// 获取桌面上的 Excel 文件列表
const getExcelFilesFromDesktop = (): string[] => {
    const desktopPath = getDesktopPath();
    const files = fs.readdirSync(desktopPath);
    return files
        .filter(file => file.endsWith('.xlsx') || file.endsWith('.xls'))
        .map(file => path.join(desktopPath, file));
};

const excelFiles = getExcelFilesFromDesktop();

if (excelFiles.length === 0) {
    console.log('在桌面未找到 Excel 文件。');
} else {
    console.log('找到的 Excel 文件：');
    excelFiles.forEach((file, index) => {
        console.log(`${index + 1}: ${file}`);
    });

    // 选择第一个 Excel 文件进行处理
    const filePath = excelFiles[0]; // 可以根据需要选择其他文件

    try {
        const workbook = XLSX.readFile(filePath);
        
        // 获取第一个工作表
        const firstSheetName = workbook.SheetNames[0];
        const worksheet = workbook.Sheets[firstSheetName];

        // 将工作表转换为 JSON
        const rawData: any[][] = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
        const jsonData = rawData.map((row, index) => {
            return { label: row[0], value: index + 1 };
        });

        // 将 JSON 数据写入文件
        const jsonString = JSON.stringify(jsonData, null, 2);
        const outputFilePath = path.join(getDesktopPath(), 'output.json'); // 输出文件名

        fs.writeFileSync(outputFilePath, jsonString);
        console.log(`成功将 JSON 数据写入 ${outputFilePath}`);
    } catch (error) {
        console.error('处理 Excel 文件时出错:', error);
    }
}
